package q07_reverse;

public class Solution_1 {
    /**
     * 该方法虽然可以完成目的，但是实际上违规了，因为题目中要求不能存储64位整数
     */
    public int reverse(int x) {
        // 先用一个flag来记录是否为负数
        Boolean flag = x > 0 ? true : false;
        // 统一按照正数处理
        x = Math.abs(x);
        long bin,res=0;
        // 正常的f反转流程
        for (int i = x; i > 0; i = i/10) {
            res = res * 10;
            bin = i % 10;
            res += bin;
        }


        if(flag){
            // 关键在于用int转回后是否还等于自身，如果不是，意味着溢出了
            return ((int)res == res ? (int)res : 0);
        }else {
            return ((int)res == res ? -(int)res : 0);
        }
    }
}
